#!/bin/bash

# 最终检查和修复所有分页问题

echo "开始最终分页检查和修复..."

# 查找所有可能有问题的分页方法
echo "查找所有可能有问题的分页方法..."

# 查找包含分页相关但可能有问题的文件
files=$(find fuint-application/src/main/java -name "*.java" -exec grep -l "PaginationRequest\|PaginationResponse" {} \;)

for file in $files; do
    # 检查是否有 selectList + lambdaQueryWrapper 但没有对应的 selectPage
    if grep -q "selectList.*lambdaQueryWrapper" "$file" && grep -q "PaginationRequest\|PaginationResponse" "$file"; then
        echo "发现可能有问题的文件: $file"
        
        # 检查是否在分页方法中使用了 selectList
        if grep -A 20 -B 5 "PaginationRequest.*paginationRequest" "$file" | grep -q "selectList.*lambdaQueryWrapper"; then
            echo "  -> 该文件在分页方法中使用了 selectList，需要修复"
            
            # 显示问题行
            echo "  -> 问题代码行："
            grep -n "selectList.*lambdaQueryWrapper" "$file"
        fi
    fi
done

echo ""
echo "检查完成！"
echo ""
echo "请手动检查上述文件，确保分页方法正确使用 selectPage 而不是 selectList"
echo ""
echo "正确的分页实现应该是："
echo "1. Page<Entity> page = new Page<>(currentPage, pageSize);"
echo "2. Page<Entity> pageResult = mapper.selectPage(page, lambdaQueryWrapper);"
echo "3. List<Entity> dataList = pageResult.getRecords();"
echo "4. return PaginationHelper.convertToPaginationResponse(dataList, (int)pageResult.getCurrent(), (int)pageResult.getSize(), pageResult.getTotal(), Entity.class);"
